The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
One of the greatest challenges in the software industry is translating requirements into computer code. A typical translation process requires numerous documents such as a requirements document, a specification document, multiple source code files, test plan documents, test execution report documents, system installation and end-user documents. These documents describe the software from different aspects and for different users. Before the software is created, the planned list of users of these documents may include a businessperson and an end-user. A software engineer can use these documents to create the software. A software tester can use these documents to confirm that the software functions according to the specifications. Finally, the businessperson, the end-user, and information management staff can use these documents to operate the software product.
The translation between the specification, test plan, source code, and product manuals is typically straightforward. In contrast, the translation between the requirements and the specification is often a difficult task. Moreover, it is often inevitable that once a prototype or a product is delivered to the businessperson or end user, the original requirements change as the real-world constraints become clearer, special cases are found, or opportunities for additional improvements are identified. When this happens, the requirements and the specification diverge, leading to inconsistencies in the documentation trail and to important business requirements being “lost in translation”.